package com.headwind.logistics.logistics.service.intl;

import com.headwind.logistics.common.pojo.Address;
import com.headwind.logistics.common.pojo.Coupon;
import com.headwind.logistics.common.pojo.Customer;
import com.headwind.logistics.logistics.dto.OrderAddressDTO;
import com.headwind.logistics.logistics.dto.QueryOrderConditionDTO;
import com.headwind.logistics.logistics.pojo.LogiPreRecordedReceipt;
import com.headwind.logistics.logistics.pojo.LogisticsOrderTail;
import com.headwind.logistics.logistics.pojo.LogisticsWorkOrder;
import com.headwind.logistics.logistics.pojo.LogisticsWorkOrderContent;

import java.util.List;

/**
 * @Author 小恶魔
 * @Date 2020-07-20 10:41
 * @Version 1.0
 * @DESCRIPTION 客户业务逻辑层接口
 */
public interface LogisticsCustomerServiceIntl {

    Customer customerLogin(Customer customer);

    List<Coupon> queryCouponByCustomerId(Integer type,Long customerId);

    List<Address> queryAddressByCustomerId(Long customerId,Integer page,Integer rows);

    Integer addPreRecordedReceipt(String putSendInfo
            , LogiPreRecordedReceipt preRecordedReceipt);

    List<LogiPreRecordedReceipt> queryPrerecordPage(Integer page
            ,Integer rows,Long customerId);

    Coupon queryCouponById(Long couponId);

    List<OrderAddressDTO> queryOrderAddressByCustomerId(Long customerId
            , Integer page
            , Integer rows);

    List<LogisticsOrderTail> queryOrderTailByOrderId(Long orderId);

    Integer addWorkOrder(LogisticsWorkOrder workOrder, LogisticsWorkOrderContent workOrderContent);

    /**
     * 根据订单号或顾客id获取投诉信息
     * @param orderNo
     * @param customerId
     * @return
     */
    LogisticsWorkOrder queryWorkOrderCountByCustomerIdOrOrderNo(String orderNo,Long customerId);

    Integer updatePrerecordById(Integer orderState,Long prerecordId);

    List<OrderAddressDTO> querySendOrderByNoOrDateOrStatus(QueryOrderConditionDTO queryOrderConditionDTO,Long customerId,Integer page,Integer rows);

    List<OrderAddressDTO> queryPutOrderByNo(QueryOrderConditionDTO queryOrderConditionDTO,Customer customer,Integer page,Integer rows);

    List<LogisticsOrderTail> queryOrderTailByOrderNo(Long customerId,String orderNo);
}
